Bill pay service with federated directory model support

ABSTRACT

A method, system, apparatus, and computer program for conducting a real-time payment settlement transaction. The method receiving a request for endpoint data, and, in response to receiving the request, determining whether one or more directories, among a plurality of directories, can provide the endpoint data requested in the request. The method also includes identifying at least one directory, among the directories determined to be able to provide the endpoint data requested in the request, as a selection for providing the endpoint data, and obtaining the endpoint data from the at least one directory identified in the identifying. In one example embodiment, the endpoint data includes an account number of a payee account and a routing number of a payee entity. A payment message or a request for payment message can be routed using the obtained endpoint data.

CROSS REFERENCE TO RELATED APPLICATION

Co-pending U.S. patent application Ser. No. 15/488,848, filed Apr. 17, 2017, and co-pending U.S. patent application Ser. No. 15/200,340, filed Jul. 1, 2016, are incorporated by reference herein in their entireties, and both of these co-pending applications claim priority to U.S. Provisional Patent Application No. 62/187,406, filed Jul. 1, 2015, and U.S. Provisional Patent Application No. 62/286,738, filed Jan. 25, 2016, the contents of which are also incorporated by reference herein in their entireties, as if set forth fully herein.

BACKGROUND Field

Example aspects herein relate generally to electronic transactions and, more specifically, to electronic real-time payment and non-payment transactions, billing, and also to directory services for electronic transactions.

Description of the Related Art

The average banking customer interacts with his or her bank or financial institution at least twice a day for payment-related matters, such as buying a financial product, checking on a payment, or paying a bill. These interactions represent more than 80 percent of customer interactions with banks, making payments a superb platform, or beachhead, for deepening customer relationships with regard to financial services. Indeed, payment revenue is increasingly targeted by non-banks, and, missing out on these fees could detrimentally impact the capture of all possible banking related revenue.

Banks typically offer customers the ability to pay bills from their bank accounts using services such as online banking, for example. However, such existing services have imperfections. For example, a bank customer (e.g., a payor) typically has to first register or set up a bill pay payee in their online bank account before being able to make a payment from the bank account to the bill pay payee. Setting up a bill pay payee can be burdensome and confusing because often times bill pay payees may have various subsidiaries and related entities that share similar names, but often with different addresses, making it difficult to identify the correct bill pay payee for a particular transaction. Further adding to the confusion is that often bill pay payees have multiple bank accounts, or the payor may have multiple account numbers at a particular biller. For example, a customer may have more than a single account and account number in association with a service (e.g., a cellular service) provided by a particular biller (e.g., a cellular service provider). Compounding these areas of confusion is that a bank customer often does not know if the bill pay payee has been correctly set-up before making a payment. Thus, a bank customer may discover, after the fact, that a payment was misdirected and/or misapplied only after the payment was attempted or effected. This can result in non-payments, and payment delays, and lead to late fees being charged, and the like.

In view of the above challenges, most bank customers prefer to pay their balances through services offered by the payee instead of through their online bank account services. Typically, most commercial payees operate a website that allows customers to pay a balance they may owe to the payee. However, this method of payment is also burdensome for a customer because the customer will need to create log-on credentials in order to access the website operated by the payee, and customers typically pay bills to numerous payees, thus making it difficult to keep track of multiple log-in credentials for various payees. Furthermore, and perhaps even more importantly, websites operated by payees are often targeted by cyberattacks, and confidential banking information belonging to customers can be susceptible to being stolen through such attacks. Thus, paying bills through websites operated by payees can expose customers to fraud and identity theft, in addition to being unwieldy to manage.

Further complicating matters is that there is no ubiquitous centralized directory that contains banking information for various payees and payors. Traditionally, banks either directly or by way of a third party service, have operated and maintained proprietary directories that include banking information, such as bank account numbers and associated routing numbers for various parties. However, operating, maintaining, or employing these directories is expensive, and traditional directory services may contain inconsistent, different, or incorrect information. Pricing for directory services also can vary among different directory services. Moreover, it is too cost prohibitive and labor intensive to create a new uniform and all-encompassing single directory service from scratch that would not suffer from fragmentation and thus, many banks and financial institutions must rely on the fractured directory services currently in existence in order to process banking transactions.

In view of the foregoing, there is a need to develop and implement an improved payment system and directory service that eliminate the aforementioned limitations.

BRIEF SUMMARY

The example embodiments discussed herein address the challenges in the art discussed above, by providing methods, and systems, apparatuses, computer-readable media, and computer programs that operate in accordance with the methods, for performing real-time clearing and payment settlement transactions.

In one aspect, the example embodiments enable existing bill pay service providers to have more reach. In another aspect, the example embodiments enable tokenized endpoints for both payees to receive real time payment (RTP) credits and payors to receive request for payments (RFP). In another aspect, the example embodiments enable services that can support verified single sign-on for the retrieval of detailed bill or invoice information. In one aspect, the example embodiments include a federated directory model that supports the opening-up of existing directory services via a single interface. In one aspect, the federated directory model can support multiple pricing models allowing directory providers to set their pricing for data. According to one example embodiment herein, a method is provided for conducting a financial transaction. The method comprises receiving a request for endpoint data, and, in response to receiving the request, determining whether one or more directories, among a plurality of directories, can provide the endpoint data requested in the request. The method also comprises identifying at least one directory, among the directories determined to be able to provide the endpoint data requested in the request, as a selection for providing the endpoint data, and obtaining the endpoint data from the at least one directory identified in the identifying.

According to another example aspect herein, the determining includes communicating with the plurality of directories to determine whether one or more of the plurality of directories can provide the endpoint data requested in the request. The method is performed by a federated directory, and further comprises determining whether the federated directory can provide the endpoint data requested in the request. The determining also can include determining a requirement by the one or more of the plurality of directories for providing the endpoint data, wherein the requirement includes a price.

According to another example aspect herein, the identifying includes receiving an indication of the selection of the at least one directory, and the method further comprises providing a notification specifying directories that are determined to be able to provide the endpoint data requested in the request, wherein the selection of the at least one directory is a selection of one or more of the directories specified in the notification. The notification can be provided in the providing to one of a payor entity or payee entity, and the indication is received from the one of the payor or payee entity. The selection also may be based on predetermined criteria, such as a price.

In one example aspect of the present application, the endpoint data includes at least one of a bank account number and a bank routing number. In another example aspect, the method further comprises obtaining at least one token identifier based on the at least one of the bank account number and the bank routing number. The at least one token identifier is a mask for the at least one of the bank account number and the bank routing number.

According to still another example embodiment herein, the selection is performed based on at least one bid. In still another example embodiment herein, the method further comprises receiving a transaction message that includes at least one token, and correlating the at least one token to at least one of a bank account number or a bank routing number. The transaction message is one of a request for payment message or a payment message. The method also can include routing the transaction message to a destination based on at least the bank routing number.

Further features and advantages, as well as the structure and operation, of various example embodiments are described in detail below with reference to the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram of an example transaction system that includes a real time payments system according to an example embodiment herein.

FIG. 2 illustrates an example of a federated directory in accordance with an example embodiment herein.

FIG. 2A illustrates an example procedure by a federated directory when a request for payment (RFP) message is sent from a payee to a payor.

FIG. 2B illustrates an example procedure of a federated directory when a payment transaction message is sent from a payor to a payee.

FIG. 3 is an example computer system configured in accordance with example embodiments herein.

FIG. 4 illustrates a flow diagram of a process for a request for payment, according to an example embodiment herein.

FIG. 5 illustrates a flow diagram of a process for a real time payment, according to an example embodiment herein.

FIG. 6 illustrates an example format of a request for payment message (RFP).

DETAILED DESCRIPTION

Various embodiments will be described in detail with reference to the drawings, wherein like reference numerals represent like parts and assemblies throughout the several views. Reference to various embodiments does not limit the scope of the claims attached hereto. Additionally, any examples set forth in this specification are not intended to be limiting and merely set forth some of the many possible embodiments for the appended claims.

FIG. 1 is a diagram of a transaction system 100 configured in accordance with an example embodiment herein. The transaction system 100 includes user stations 110 and 120. In an example embodiment, user station 110 is operated by, under the authorization of, or on behalf of a payor (e.g., an individual, business, government, etc.), and user station 120 is operated by, under the authorization of, or on behalf of a payee (e.g., an individual, business, government, etc.). In this example, the payor may owe one or more debts, or may otherwise seek to make payments, to the payee. Accordingly, user station 110 can be referred to as a “payor station,” and user station 120 can be referred to as a “payee station.” Each user station may be, for example, a computer, a tablet computer, a server, a personal computer, a smartphone, a standalone computer terminal such as a kiosk or ATM, or any other suitable type of electronic device for receiving, transmitting, storing, and/or processing information.

The transaction system 100 also includes financial institutions (FIs) 111 and 121. In an example embodiment, a payor associated with station 110 can receive banking services (e.g., account services such as access to demand deposit accounts and savings accounts, brokerage services, and electronic bill payment and present services and the like) from FI 111. Similarly, a payee associated with station 120 receives banking services from FI 121. Accordingly, FI 111 can be referred to as a “payor FI” and FI 121 can be referred to as a “payee FI.” Each FI includes one or more computers and/or servers, such as, for example, the system of FIG. 3 , which are configured to handle electronic financial transactions.

Payor station 110 is connected to (e.g., can electronically communicate with) payor FI 111. Accordingly, the payor may use station 110 to access banking services provided by FI 111 through, for example, an online banking portal available through, for example, a mobile application and/or a web browser running on station 110, banking software loaded on to station 110, or any other banking service provided by FI 111 on station 110. Similarly, payee station 120 can be connected in a similar manner to payee FI 121. Stations 110 and 120 also may connect to other elements as well, such as other elements of system 100.

Payor FI 111 and payee FI 121 are connected to each other by a network 130 (also referred to as a Real Time Payment (RTP) network). In one example embodiment, the network 130 is not an automated clearinghouse (ACH) network, although in other embodiments it can be an ACH network (e.g., such as, without limitation, one or more of the Electronic Payments Network (EPN) and the FedACH). The network 130 can route (e.g., receive and transmit) electronic transactions and various types of messages between FIs via interfaces (e.g., gateways) 112 and 114, as described below. The network 130 can include one or more computers and/or servers (such as, for example, the system shown in FIG. 3 ) which are configured to handle electronic financial transactions. The network 130 also can include one or more databases. Although represented as a single network 130, there may be more than one such network. For example, one such network can include the RTP network and another such network can include an ACH network.

Each connection illustrated in FIG. 1 can be any suitable type of existing or later-developed connection between one or more computers (or computing devices). In one example, at least part of one or more of such connections may include a network such as a local-area network (LAN), wide-area network (WAN), or the Internet. For example, station 110 may be a computing device (e.g., a PC or smartphone) that connects, via the Internet, to one or more web pages maintained or hosted by or on behalf of FI 111.

In one example embodiment, stations 110 and 120 can be connected together and/or with other elements of the system 100 (including, without limitation, biller interface 144), either directly or indirectly, by a secure communication channel on which communications may proceed after a single sign-on (SSO) procedure is performed in which a member using station 110 logs in to an online banking service provided by FI 111, although this example is neither limiting nor exclusive. In such a procedure, payor FI 111 can be configured as a SAML identity provider, station 120 can be configured as a SAML service provider, and/or other elements can be configured as a SAML identity provider. Accordingly, through communication between FI 111 (as the SAML identity provider) and station 120 (as the SAML service provider) and/or other elements, a secure communication channel between station 110 and 120 and/or other elements can be established. In one example embodiment, such a secure communication channel is provided by way of network 130, which enables the SSO procedure to be effected.

RTP network 130 includes a core processing system 131, an administrative system 132, and a settlement system 133. RTP network 130 can also include one or more databases. Generally, core processing system 131 performs processes such as payment processing, message validation, duplicate message checking, transaction state management, acknowledgements, non-payment messaging processing, administrative message processing, and system message processing. The core processing system 131 also performs processes such as message routing, transaction routing, routing to a value added service system (to be described below), and end-point fraud management. The system 131 also performs processes such as system security processes, authorization and authentication, user access management, and fraud detection.

The administrative system 132 performs administrative processes such as operations processing, participant onboarding, helpdesk and customer service, control room system monitoring, data management, conducting inquiries and investigations, and bank administration. Additionally, system 132 performs reporting processes such as a dashboard, operations reporting, statistics reporting, performance reporting, pricing and billing, regulatory reporting, and internal audit reporting. The administrative system 132 also performs governance and rules management processing, maintains business rules, effects change management, participant management, audits, and risk management.

The settlement service system 133 performs settlement processing to enable financial transactions to be settled. In one embodiment, the settlement service system 133 manages multilateral net settlement positions and/or non-multilateral net settlement positions (such as, e.g. on a transaction-by-transaction basis), settlement notifications, and transmits/receives data to/from at least one settlement facility 134. That facility 134 also can communicate with the FIs 111 and 121 by way of gateways 115 and interfaces 112, 114.

The transaction system 100 also can include a value added service system 138 connected to (or within) the RTP network 130 and the FIs 111 and 121. The system 138 performs various valued-added services such as, for example, directory services and maintenance, fraud management, analysis, and reporting, and token services. In one example embodiment herein, the directory services and token services can be performed by, or in conjunction with, a federated directory 200 and/or the added service system 138 as will be described in more detail below. Various elements of the transaction system 100, such as, e.g., stations 110, 120, FIs 111, 121, RTP network 130, systems 131, 132, 133, 138, facility 143, elements 142, and biller interface 144, can include at least some parts of one or more computers and/or servers, such as, for example, the system shown in FIG. 3 .

In the illustrated example, the systems 134 and 138 and federated directory 200 are represented as being separate from the RTP network 130, and at least some parts of the below description is made in the context of that example embodiment. However, it should be understood that the scope of the invention is not limited to that example only. For example, it is also within the scope of the invention for the systems 134 and 138 and directory 200 to be included in, operated by, or otherwise be a part of the RTP network 130, and one skilled in the art would understand in view of this description how to adapt the functionalities described herein where needed to accommodate such an embodiment.

The transaction system 100 further can include elements 142 such as, for example, service providers and/or other entities. Elements 142 can be those which, for example, provide a technical connection and gateway (application interface) services, and, in some cases, other value added/back office services. In other embodiments, elements 142 can be, for example, payment service providers, a third party service provider, a payee or a clearinghouse. In the transaction system 100, the third party and/or other entity can receive bills and payments from FIs 111, 121 and send them to other FIs 111, 121. Element 142 can include one or more computers and/or servers, such as, for example, the system shown in FIG. 3 .

The transaction system 100 may also include biller interface 144. In one example embodiment herein, the biller interface 144 can be operated and/or maintained by the RTP network 130 and/or federated directory 200 and/or by an entity that overseas them, in one example embodiment. The biller interface 144 can be separate from the RTP network 130 and/or the federated directory 200, or it can be included in or more of these elements. In other example embodiments herein, the biller interface 144 may be operated by a payment service provider or a third party service provider (e.g., elements 142), a FI such as FI 121, or a payee associated with station 120.

Elements of transaction system 100 can be configured to perform one or more of the steps or functions associated with any of the processes discussed herein, including those illustrated in the flow diagrams shown in the Figures and those discussed in connection therewith.

Directory Services and Tokenization

Tokenization involves use of a unique code that can be used to, for example, post transactions to an account. Tokenization can be useful because a payor does not need to receive a payee's account data, but can still conduct a payment to the payee, and also there is no need for a PCI-type of security for a payor. Tokens are safe even if exposed in a cyberattack. Also, mass payment fraud can be prevented with tokens.

In one example embodiment, tokenization substitutes a limited-use random number (secure digital token) for a customer's account number so that the sensitive information remains safe. Even if compromised, a token is of limited or no use to cybercriminals. Tokenization as used in the example embodiments herein can involve various aspects. For example, tokenization can be provided in a dynamic or static manner. In the case of dynamic tokenization, the token for each transaction is unique, thus rendering the token itself unusable for any other transaction. In the case of static tokenization, the same token is used for multiple transactions, but may be restricted to prevent unauthorized use (e.g., credit only, single merchant). Still another type of restriction may include a domain restriction which provides further fraud reduction by limiting token use to a certain digital wallet, merchant, channel (e.g., e-commerce), amount, transaction type (e.g. credit or debit) or expiration date. For a token vault, bank (or multi-bank) vaults create tokens, perform customer authentication, and provision tokens to digital wallets or directories.

By virtue of the use of tokens, payors can initiate payments using an alias (e.g., a phone number, email, or etc.) which can be used to retrieve bank routing information from a directory. As such, payees do not need to provide account numbers to payors, and payors do not assume a risk of holding receiver account numbers.

The RTP network 130 enables a payee to use a bank account number pseudo-code (BANPC) and a bank routing number pseudo-code (BRNPC) as described below, for an added level of security. Similar functionality is also described in U.S. Pat. Nos. 6,173,272 and 6,317,745, both to Thomas et al. These two patents, which describe a Universal Payment Identification Code (UPIC) protocol, are hereby incorporated by reference in their entireties, as if set forth fully herein. BANPC and BRNPC identifiers can be used in effecting credit-only transactions, or both credit and debit transactions.

A BRNPC is a mask identifier for the routing number of a FI, such as FI 111 or FI 121. A BANPC is a mask identifier for the account number of a party (such as, e.g., the payee) at its associated FI (e.g., payee FI 121). In one example embodiment, the mask identifiers are in the form of tokens. For a BANPC transaction, when an electronic payment is specified to be made by a payor by way of the payor FI 111, instead of using the actual account number of the payee and the actual routing number of the payee FI, a BANPC identifier corresponding to the account number and a BRNPC identifier corresponding to the routing number are obtained and are inserted (e.g., by FI 111) into a payment transaction message in a tokenization procedure. Accordingly, the payor FI 111 is provided with a BRNPC identifier and a corresponding BANPC identifier, but not with the actual payee-related account and routing numbers. The BANPC and BRNPC identifiers collectively protect the payee's banking information and mitigate the opportunity for fraud. A detokenization procedure includes a reversal of the tokenization procedure performed, and thus includes a translation of the BANPC and BRNPC identifiers included in the payment transaction message back into the corresponding account number and routing number. In one example embodiment herein, detokenization is performed by one or more of RTP system 130, directory 200, and/or system 138. FIG. 2 depicts a federated directory 200 having a proprietary database or directory 210, in accordance with an example embodiment herein. The federated directory 200 may be separate from the RTP network 130, although in other example embodiments herein, the federated directory 200 may be included in the RTP network 130 (or in the value added service system 138). In another example, the federated directory 200 can be included elsewhere in the transaction system 100, such as at a third party or another element. Referring also to FIG. 1 , the federated directory 200 can communicate with other elements of the system 100, such as, by way of example and without limitation, the network 130, FI 111 (e.g., by way of element 112), and FI 121 (e.g., by way of element 114), and other (e.g., industry) third party directories 201, 202, 200 . . . N, and any such communications can be effected directly, in one example embodiment herein, or by way of another element such as RTP network 130, in another example embodiment herein.

Examples of third party directories 201, 202, 200 . . . N include, for example, directory services provided by MasterCard RPPS, Fiserv, FIS, Ebids, Zelle, ACI, etc., although these examples are neither limiting nor exclusive. Typically, each industry directory 201, 202, 200 . . . N is owned and operated separately, and maintains its own proprietary endpoint data relating to various parties. The federated directory 200 also can maintain its own proprietary endpoint data relating to various parties, in some example embodiments. The endpoint data for a party may include, for example, an account number at a FI 111, 121 for a particular payor or payee and a corresponding routing number of the FI 111, 121, and various other types of identifying information maintained by the directories. For example, the directories may also include information such as endpoint data identifying a particular party (e.g., payor, payee), such as, for example, a name, email address, street address, phone number, etc. Additionally, in some example embodiments, the endpoint data may also include data for a single sign-on (SSO) application for inclusion on a request for payment message (RFP) or other type of message. The endpoint data maintained by more than one directory may overlap at least to some extent such that at least some of the same endpoint data may be contained in multiple directories, although in some cases there may be no overlap of endpoint data.

Also, one or more of the industry directories 201, 202, 200 . . . N, and, in one example embodiment herein, the federated directory 200, may require or have associated therewith a unique pricing structure for enabling access by others to the endpoint data maintained therein. The pricing could be dynamic, provided upon request, or published. In one example embodiment herein, endpoint data is provided to a requester only if the pricing is agreed to or otherwise paid beforehand. In another example embodiment herein, one or more of the directories may have other requirements for enabling access to endpoint data, either in addition to or in lieu of price. The federated directory 200 can communicate with a payee FI 121 and a payor FI 111 through the interfaces 114, 112, respectively, and serves as a single interface for providing and/or making available, information about, or included in, the industry directories 201, 202, 200 . . . N, as well as information about, or included in, the directory 210 of the federated directory 200. For example, the federated directory 200 can determine or poll for, and post or make available, information regarding whether endpoint data for a particular payee or payor exists in the proprietary directory 210 of the federated directory 200, and/or whether endpoint data for a particular payee or payor exists in one or more directories 201 to 200 . . . N. The federated directory 200 can also determine or poll for, and post or make available, additional information related to pricing and other criteria for enabling access to the endpoint data. If the requested endpoint data is contained in multiple directories, the federated directory 200, either directly or by way of network 130, can provide a notification indicating such to the requesting FI 121, 111 (or station 120, 110, or the party associated therewith) can decide which directory to use for obtaining the data, or, in another example embodiment herein, the decision can be made by the federated directory 200 automatically based on predetermined criteria, such as a priority order or some other criteria. In one example, a requesting party, such as FI 121 or 111, may elect to use the directory that charges a lowest price for the endpoint data, or may elect to use a directory based on some other criteria.

In one example embodiment herein, the federated directory 200 has one or more pointers to the information stored in the individual industry directories 201, 202, 200 . . . N, and does not replicate information stored in those industry directories, given that the record of truth is deemed to be that held by the industry directories. The federated directory 200 therefore effectively holds a reference to the fact that data exists and the pricing associated with it, by virtue of one more pointers. In other example embodiments herein, the federated directory 200 can replicate the information stored in the industry directories 201, 202, 200 . . . N, or, in another example, can query the industry directories for information, such as on an as-needed or transaction-by-transaction basis, although these examples are not exclusive. In still another example embodiment herein, the federated directory 200 stores the endpoint data, and that data may or may not also be stored in the industry directories 201, 202, 200 . . . N. The federated directory may tokenize the data, as described herein.

Although a single federated directory 200 is represented in FIGS. 1 and 2 , it should be noted that in some example embodiments more than a single federated directory 200 may be employed. Also, in other example embodiments, separate federate directories 200 may be provided, such as a federated payor directory and a federated payee directory. For example, the payor federated directory can post or make available information regarding whether endpoint data for a particular payor exists in the proprietary database of the federated payor directory, and/or whether endpoint data for a particular payor exists in one or more directories 201 to 200 . . . N. The payor federated directory can also post or make available additional information related to pricing and other criteria for enabling access to the endpoint data. Similarly, the payee federated directory can post or make available information regarding whether endpoint data for a particular payee exists in the proprietary database of the federated payee directory, and/or whether endpoint data for a particular payee exists in one or more directories 201 to 200 . . . N. The payee federated directory can also post or make available additional information related to pricing and other criteria for enabling access to the endpoint data.

In one example aspect herein, the federated directory 200 can receive a request for party endpoint data from, for example, a FI 111 or 121, and can then determine whether the endpoint data is included in the directory 210, and/or can communicate with, or identify one or more pointers to, the other directories 200 to 200 . . . N to determine whether any of those other directories has the endpoint data. Then, in one example embodiment herein, the federated directory 200 can notify or otherwise make available to the requesting entity (e.g., FI 111 or 121) information indicating that the requested endpoint data is available (or unavailable), and, in the case where pricing and/or some other criteria is required for providing the information to the requesting party, the pricing and/or other criteria also can be provided.

It should be noted that pricing is not required in at least some embodiments. Whether pricing is employed depends on applicable operating criteria for the system 100. In some example embodiments where pricing is employed, a price can be charged on a transaction-by-transaction basis, although in other embodiments, participants in the system 100 may pay a periodic subscription fee (in addition to or in lieu of transaction-by-transaction fees) for participation in the service 100. The fee(s) may be provided to any applicable element of the system 100, including without limitation, the RTP system 130, the federated directory 200, the industry directories 201 to 200 . . . N, or other elements. In some embodiments, fees obtained by one component of the system, such as federated directory 200 or system 130, can be forwarded or shared with other components requiring payment for services, such as, without limitation, the industry directories 201 to 200 . . . N, and the fees can be paid from, e.g., FIs 111 and 121 (or other components of system 100). In some example embodiments where fees are charged on a transaction-by-transaction basis, the fees may be obtained as a mark-up on a transaction value, and can be obtained during transmission of a corresponding payment transaction through the system 100, although this example is not exclusive.

In an example embodiment herein, instead of, or in addition to, providing information related to pricing and/or other criteria for enabling access to the endpoint data, the federated directory 200 may request and/or receive a bid from a FI 121, 111 requesting external access to endpoint data relating to a particular party. In one example herein, the bid may be included in the request for endpoint data, although in another embodiment the bid can be provided after the FI is notified that endpoint data is included in one or more directories. The federated directory 200 can then provide the bid to the industry directories 201, 202, 200 . . . N that contain the requested endpoint data, and then the industry directories 201, 202, 200 . . . N can determine whether to accept or reject the bid, e.g., in an auction or other type of decision-making process. In other example embodiments herein, the federated directory 200 itself can make the determination, based on pricing, or some other predetermined rules or criteria, for the endpoint data by the directories 200, 201 to 200 . . . N.

In some example embodiments herein, the federated directory 200 can generate tokens, according to the Universal Payment Identification Code (UPIC) protocol, for a particular bank and routing numbers in response to a request from a FI 121, 111. In the same or other example embodiments herein, the federated directory 200 also can be connected to a secure token exchange (STE) 212 (and/or network 130) to create, or otherwise obtain from that entity, tokens according to the UPIC protocol. In this manner, BANPC and BRNPC identifiers for a payor associated with station 110 or a payee associated with station 120 can be obtained, either by accessing the federated directory 200 or by way of RTP network 130. In a tokenization procedure, the BANPC and BRNPC identifiers can be used by the RTP network 130 in place of an actual account number and routing number of a party, in messages such as request for payment messages (RFP), payment transaction messages, and the like. The BANPC and BRNPC identifiers for respective parties, such as payors and payees (including other entities), can be stored in the proprietary directory 210 of the federated directory 200, or can be obtained from the secure token exchange (STE) for enabling tokenization and detokenization procedures to be performed by the RTP network 130, or by the directory 200 itself

The detokenization procedure includes a reversal of the tokenization procedure, and thus includes a translation of the BANPC and BRNPC identifiers included in a message, such as, e.g., a request for payment message (RFP) or a payment transaction message, back into bank account and routing numbers, respectively. For example, during the detokenization procedure, the BANPC and BRNPC identifiers are correlated to an account number and an associated routing number, respectively, stored in the proprietary directory 210 of the federated directory 200 or elsewhere. The account number and the associated routing number are then inserted (e.g., by the RTP network 130) into the message in place of the BANPC and BRNPC identifiers, which are removed so that the message can be sent to a destination for completing a transaction.

Before describing flow diagrams directed to methods according to example aspects herein, a brief description will first be provided regarding how the federated directory 200 is employed in various scenarios, such as a case where a request for payment (RFP) message is employed, and another case where a real time payment transaction is employed, according to example aspects herein.

For the (RFP) message case, a RFP message can be sent from a payee associated with station 120 to a payor associated with station 110, to request that the payor make payment of an amount to the payee. In this case, a payee FI 121 (e.g., in response to a request by payee station 120) first sends a request for endpoint data about a party (from whom the request is being made) to the RTP network 130. Information identifying the party (e.g., a payor associated with station 110 and payor FI 111), such as a name, street address, email address, phone number, or the like (associated with the payor, payor station 110, and/or payor FI 111), may be included in the request. The RTP network 130 validates the request, e.g., by checking its format and the like.

The requested endpoint data may exist in one or multiple directories, such as in the propriety database 210 of federated directory 200 itself and/or in any other directories 201, 202, 200 . . . N, and there may be pricing required for the endpoint data, which may vary for different directories. After validating the request, the federated directory 200 determines whether the endpoint data for the payor exists in one or more directories. By example, in one example embodiment herein, the federated directory 200 checks its database 210 to determine whether the requested endpoint data is included therein, and also communicates with the directories 201, 202, 200 . . . N to determine whether the requested endpoint data is included in any of those directories, and also whether there is any pricing or other requirements that would needed to be provided in order to obtain the endpoint data. In either situation, the determination can be made by comparing information included in the request for endpoint data, to information stored in the directories, to determine whether corresponding information, and related endpoint data, is included therein. In one example embodiment herein, the determination of whether endpoint data and/or pricing exists is made by simply correlating information included in the request for endpoint data, to one or more corresponding pointers of the directory 200, wherein the pointers point to corresponding information stored in the directory 210 and/or the industry directories 201 to 200 . . . N.

If it is determined that there is such information and endpoint data included, the federated directory 200 can respond to the request by providing a message to the payee F1 121, identifying the directory or directories where the endpoint data exists and the requirements (if any) for enabling access to the endpoint data. Thereafter, a decision can be made, such as by the payee, payee station 120, payee FI, 121, or even by the one or more of the directories 200, 201 to 200 . . . Nf, as to which directory to use to access the endpoint data. Such a decision can be made based on applicable criteria, such as, in one example embodiment herein, based on which directory requires the lowest price for the data, although other decision-making criteria also can be employed, such as, e.g., a predetermined priority order, a bid/auction process as described above, or other criteria. After the decision is made (and communicated by the deciding entity to the directory 200, if needed), the federated directory 200 then retrieves or obtains the requested endpoint data from the selected directory, wherein in a case where the endpoint data is obtained from one or more external directories 201 to 200 . . . N, the obtainment involves communicating with such directories to obtain the information, and wherein in a case where the database 210 includes the endpoint data, the data is obtained from there. (In one example embodiment herein, the federated directory 200 stores endpoint data obtained from external directories into the proprietary directory 210, if it is not stored there already, although in other examples the retrieved information need not be stored there). In one example embodiment herein, the federated directory 200 and/or RTP system 130 also correlates information in the retrieved/obtained endpoint data, such as, for example, a routing number of the payor FI 111 and/or a related account number associated with the payor FI 111, to a corresponding BRNPC identifier and BANPC identifier, obtained in the above-described manner from, for example, directory 210 or the STE, to thereby tokenize the numbers. The BANPC and BRNPC identifiers are then sent to the FI 121 from which the request for endpoint data was received, either directly by the directory 200 or by way of the RTP network 130, so that the FI 121 can then create a request for payment message (RFP) without using or having access to the actual payor account and routing numbers from the endpoint data.

The example case of a real time payment transaction will now be described, wherein a payor associated with station 110 can effect a payment to a payee associated with station 120, using the federated directory 200. In this case, a payor FI 111 first sends a request for endpoint data to the directory 200 (either directly or by way or RTP network 130), to request the endpoint data needed to route a payment transaction message to a particular payee, such as a payee associated with station 120. Information identifying the payee, such as a name, street address, phone number, email address, or the like, may be included in the request. The request is communicated to and validated by, e.g., the RTP network 130 and/or federated directory 200, and the federated directory 200 then determines whether the endpoint data for the payee FI 121 exists in the database 210 or one or more of the directories 201 to 200 . . . N, in the same manner as described above for the RFP message case. Again, the endpoint data may exist in multiple directories, in addition to or in lieu of database 210, and there may be pricing and/or other criteria required for the endpoint data that may vary between directories. The federated directory 200 then can respond to the request by providing a message to the payor F1 111, identifying the directory or directories where the endpoint data exists and the requirements (if any) for enabling access to the endpoint data.

Thereafter, a decision can be made, such as by the payor, payor station 110, payor FI, 111, or by one or more of the directories 200, 201 to 200 . . . N, as to which directory to use to access the endpoint data. Such a decision can be made based on applicable criteria, such as, in one example, based on which directory requires the lowest price for the data, although other decision-making criteria also can be employed such as, e.g., a predetermined priority order, a bid/auction process as described above, or other criteria. After the decision is made (and communicated by the deciding entity to the directory 200, if needed), the federated directory 200 then retrieves or obtains the requested endpoint data from the selected directory, wherein in a case where the endpoint data is obtained from one or more external directories 201 to 200 . . . N, the obtainment involves communicating with such directories to obtain the information (in one example, this is performing using one or more pointers), and wherein in a case where the database 210 includes the endpoint data, the data is retrieved from there. (In one example embodiment herein, the federated directory 200 stores endpoint data obtained from external directories into the proprietary directory 210, if it is not stored there already, although in other examples the retrieved information need not be stored there). The federated directory 200 and/or RTP system 130 also correlates information in the retrieved/obtained endpoint data, such as, for example, a routing number of the payee FI 121 and/or a related account number associated with the payee FI 121, to a corresponding BRNPC identifier and BANPC identifier, obtained in the above-described manner from, for example, directory 210 or the STE. The BANPC and BRNPC identifiers are then sent to the FI 111 from which the request for endpoint data was received, either directly or by way of the RTP network 130, so that the FI 111 can then create a payment transaction message without using or having access to the actual payor account and routing numbers from the endpoint data.

In view of the foregoing example embodiments, the federated directory 200 effectively provides a single interface or system for leveraging multiple industry directories to enable a party to send a request for payment (RFP) message or to effect a payment transaction using endpoint data obtained from one or more of those directories, by way of a single interface, namely, directory 200. The transaction system 100 and federated directory 200 described herein enable secured transactions to be made between a payor and payee such that, for example, the payee may securely send a request for payment message (RFP) to the payor, and the payor may make a secure payment to the payee (in real-time or otherwise). Accordingly, a customer (e.g., payor) can more efficiently and more securely pay various balances owed to various billers (e.g., payees) through a single secure location (directory 200) that leverages multiple directory services, to enhance a payment procedure, while also improving computer and networking technology by reducing the amounts of signal traffic, computer processing, and storage that would otherwise be required without the directory 200 to access/obtain information from the various industry directories 201 to 200 . . . N individually and separately, and/or to conduct financial transactions without the directory 200. Moreover, the leveraging of multiple external directories 201 to 200 . . . N, in addition to the information stored in the federated directory 200 itself, provides for, effectively, a more ubiquitous and all-encompassing directory service that includes more endpoint data than that included in any single existing directory service, thereby avoiding problems associated with fragmenting and the like, in traditional systems, and enabling transactions to be performed more easily and more reliably. Moreover, such leveraging provides additional business opportunities for third party directories, and also enables parties requesting endpoint data to have more directories and pricing options to be made available to them than were available traditionally.

It should be noted that although the example embodiments described herein are in the context of RTPs and payment transactions, the scope of the invention is not limited only thereto, and it also is within the scope of the present invention to employ the federated directory and the functionalities thereof in conjunction with other types of messages and transactions as well, and/or merely to obtain endpoint data associated with a particular party.

Example Computer Systems

Before describing flow diagrams of methods according to example aspects herein, an example computer system that can be employed herein will now be described. FIG. 3 is a diagram of an example computer system 300. In example embodiments, the computer system 300 may form at least part of one or more of the components illustrated in the Figures, and may be configured to perform one or more steps of the processes illustrated in the Figures. For example, a payor FI 111 and payee FI 121 can include one or more servers, each which can include one or more computer systems 300 like that of FIG. 3 . As another example, a user station (e.g. stations 110 and/or 120) can include one or more computer systems 300. Also, the RTP network 130, the federated directory 200, and the directories 201 to 200 . . . N can include at least part of one or more computer systems 300 for carrying out the procedures described herein.

The system 300 of FIG. 3 includes a processor 302, a memory 303, a storage device 304, a communications device 305, and one or more user interfaces 306, all of which are coupled to a bus 301. The processor 302 can communicate with the other components of the computer system 300 through the bus 301. The storage device 304 includes one or more computer-readable media. The storage device 304 can be configured to read and write data including program instructions that may be executed by the processor 302 and operating systems (e.g., a general-purpose operating system, such as Microsoft Windows and UNIX, or a custom operating system) that allow the processor 302 to control the operation of the other components. The communications device 305 can be configured to enable the processor 302 to communicate with, for example, a network and the internet. The user interfaces 306 can include input devices (e.g., keyboards, mice, joysticks, trackpads, stylus tablets, microphones, and cameras), output devices (e.g., video displays, printers, and speakers), and input/output devices (e.g., touch screens). The user interfaces 306 can form at least part of any of device, component, and/or system discussed herein.

Processor 302 is configured to perform part (or all) of any of the processes described herein, depending on which component(s) of FIG. 1 the computer system 300 forms a part of. For example, processes such as all or part of those in the flow diagrams described herein can be stored on storage device 304 in the form of computer-readable program instructions. To execute a process, the processor loads the appropriate instructions, as stored on storage device 304, into memory 303, and then executes the loaded instructions to perform electronic transaction services, such as to, for example, generate a request for payment message (RFP), a payment transaction message for processing a payment, or other type of message, and/or to determine whether requested endpoint data is included in a directory and to provide and select or enable selection of such data as described herein.

Example Transaction Methods

1. Procedures Performed by the Federated Directory

1A. Tokenization

An example of a tokenization procedure performed by the federated directory 200, according to an example aspect herein, will now be described with reference to the flow diagram illustrated in FIG. 2A. In this case, the federated directory receives a request for endpoint data relating to a targeted party from a requesting party (e.g., a payor, payee station 110, 120, FI 111, 121) (step 240). As described above, the endpoint data may include an account number and routing number of the targeted party, and the request for endpoint data may include information identifying the targeted party, such as a name, street address, phone number, or the like. In one example, the federated directory 200 receives the request for endpoint data directly, and in another example, the request for endpoint data is received by way of the RTP network 130.

The federated directory 200 then validates the request (i.e., by checking the request's format and the like) (step 242), and determines whether the endpoint data for the party exists in one or more directories (step 244). With respect to validation, the federated directory 200 may validate various different types of messages, as disclosed elsewhere herein. In one example, the endpoint data may exist in one or in multiple directories, including for example the propriety database 210 of federated directory 200 itself and/or any other directory 201, 202, 200 . . . N. The federated directory 200 then generates a message which identifies the directories where the endpoint data exists, and which may also include pricing information and/or other criteria for enabling access to each directory where the endpoint data exists (step 246). In one example herein, the message is sent from the federated directory 200 to the RTP network 130 which then forwards the message to the requesting party (e.g., a payor, payee station 110, 120, FI 111, 121) (step 248′). In another example, the message is sent directly from the federated directory 200 to the requesting party (step 248).

Thereafter, the federated directory 200 receives a selection from the requesting party (step 250). The federated directory 200 then retrieves the endpoint data (e.g., account and routing numbers associated with the target party) from the selected directory (step 252), and stores the endpoint data in the proprietary directory 210 (step 254). The federated directory 200 then obtains a BANPC identifier that masks the account number of the targeted party and a BRNPC identifier that masks the routing number of the targeted party (step 256) in the above-described manner, and stores the BANPC and BRNPC identifiers in the proprietary directory 210 (step 258). The federated directory may then send the BANPC and BRNPC identifiers to the requesting party by way of the RTP network 130, in one example, or may send the BANPC and BRNPC identifiers directly to the requesting party (step 260) so that a transaction message can be created by or for the requesting party without using the actual account and routing numbers. Thereafter, the tokenization procedure ends (step 262).

1B. Detokenization

An example of a detokenization procedure performed by the federated directory 200, according to an example aspect herein, will now be described with reference to the flow diagram illustrated in FIG. 2B. In this case, the federated directory 200 first receives a message from the RTP network 130 that contains tokens such as the BANPC and BRNPC identifiers described above (step 270). The message can be any type of message, such as, e.g., a request for payment message (RFP) or a payment transaction message, or another type of message. The federated directory 200 then validates the message, and searches, in one example embodiment, the proprietary directory 210 for the BANPC and BRNPC identifiers that are included in the message so that the BANPC and BRNPC identifiers are correlated to an account number and a routing number, respectively, stored in the proprietary directory 210 (step 274). In other example embodiments, the federated directory 200 may search other (e.g., industry) third party directories 201, 202, 200 . . . N for the BANPC and BRNPC identifiers that correlated to the same identifiers that are included in the message so that the BANPC and BRNPC identifiers are matched to an account number and a routing number, respectively, stored in the other (e.g., industry) third party directories 201, 202, 200 . . . N. With respect to validation, the federated directory may validate various different types of messages, as disclosed elsewhere herein. The account and routing numbers are then sent to the RTP network 130 (step 274) so that the RTP network 130 can insert them into the message in place of the BANPC and BRNPC identifiers, which are removed. In another example embodiment, the federated directory 200 inserts the account number and routing numbers into the message, and removes the BANPC and BRNPC identifiers from the message (step 274′). Thereafter, the detokenization procedure ends (step 276), and the message is then further processed by the RTP network 130 as will be described further below with reference to the flow diagrams illustrated in FIGS. 4 and 5 .

In other example embodiments herein, other components besides the federated directory 200 can perform the steps described above as being performed by the directory 200 in FIGS. 2A and 2B, such as, without limitation, the RTP system 130, a federated payor directory and/or a federated payee directory, and/or other component(s) of system 100.

2. Request for Payment Procedure

A request for payment method according to an example aspect herein will now be described in greater detail, with reference to FIG. 4 , which illustrates a flow diagram according to an example embodiment herein. In one example embodiment, a payee (e.g., a payee associated with station 120 in FIG. 1 ) can provide a request for payment (RFP) to a payor (e.g., a payor associated with station 110 in FIG. 1 ) such that the payor can obtain access to and view, summary and detailed bills through payor FI 111 (e.g., via an on-line banking website or mobile application).

In step 400, the payee station 120 sends a request to the payee FI 121, requesting that payment be made to a payee associated with the station 120, from another party, such as a payor associated with payor station 110. The payee FI 121 then responds by sending a request for endpoint data (as described above) relating to the payor towards the federated directory 200 (either directly or by way of the RTP network 130) (step 401), where the request is then employed to obtain BANPC and BRNPC identifiers (based on information included in the request), in the tokenization procedure described above in accordance with the flow diagram represented in FIG. 2A. For example, as described above, the federated directory 200 determines whether the requested endpoint data is included in the database 210 and/or the other directories 201 to 200 . . . N, determines which database 210 or directory 201 to 200 . . . N to retrieve the endpoint data from (e.g., either on its own or by presenting options to the requesting party and obtaining a responsive selection), and obtains corresponding BANPC and BRNPC identifiers, in the above-described manner.

The obtained BANPC and BRNPC identifiers are then provided by the directory 200 (either directly or by way of RTP network 130) to the payee FI 121 (step 208) so that the payee FI 121 can include the BANPC and BRNPC identifiers in a request for payment message (RFP) that is generated by the FI 121 and provided to the RTP Network 130 (step 402). The request for payment message (RFP) may include, in addition to the BANPC and BRNPC identifiers, for example, a transaction identifier (e.g., a UT-ID generated by an algorithm), a payee's name (and/or other applicable information), the payor's name, the payment amount, and a payee remittance identifier (i.e., payor's account number with the payee) so that the payee can associate the payment with the payor, and/or additional information for posting purposes, although in some embodiments not all of that information need be included. In one example embodiment herein, the RFP message includes a bill summary having a limited amount of information to notify a payor that a payment should be made to the payee. The bill summary also can include information such as a link which is selectable for enabling access to a detailed bill, in the below described manner.

Next, the RTP network 130 receives the request for payment message (RFP) from the payee FI 121 and determines whether the request for payment message (RFP) is correctly formatted (step 403). For example, the RTP network 130 checks the message type, and validates the format, syntax, and/or structure of the message. Step 403 can be performed in accordance with any suitable technique. If it is determined that the message is not properly formatted (“No” in step 404), then control passes to step 411 which will be described below. If it is determined that the message is properly formatted (“Yes” in step 404), then control passes to step 405 where the RTP network 130 checks to determine whether the RFP message is duplicative of one already received, based on, for example, whether a UT-ID included in the message was already received in a previous message. If it is determined that the message is duplicative (“Yes” in step 406), then control passes to step 411, which will be described below. If the message is determined to not be duplicative (“No” in step 406), then control passes to step 407 where the RTP network 130 checks the RFP message to determine whether it includes valid BANPC and BRNPC identifiers. If not (“No” in step 408), then control passes to step 411 which is performed in a manner to be described below. If “Yes” in step 408, then the RTP network 130 makes a determination as to whether the payee FI 121 is enabled for sending a request for payment message (RFP), and whether the payor FI 111 is enabled for sending payment transactions (step 409). For example, step 409 can include RTP network 130 checking a look-up table to determine whether information in the table indicates that FIs 111, 121 have such respective capabilities. If the FIs are determined not to be enabled (No” in step 410), then control passes to step 411.

If the FIs are determined to be enabled (“Yes” in step 410), the request for payment message (RFP) is detokenized by the federated directory using the detokenization procedure described above in accordance with the flow diagram represented in FIG. 2B (step 209). For example, the BANPC and BRNPC identifiers in the request for payment message (RFP) are translated by the federated directory 200 by matching these pseudo-code identifiers with a corresponding account number and routing number stored in the proprietary directory 210 of the federated directory 200. The corresponding account number and routing number, which are associated with the payor associated with station 110, are then inserted by the RTP network 130 into the request for payment message (RFP), and the BANPC and BRNPC identifiers are removed from the message (step 415). The RTP network 130 then routes the request for payment message (RFP) with the newly inserted numbers to the payor FI 111 based on the inserted routing number (step 416).

The request for payment message (RFP) is then validated to confirm that it is in the correct format (step 418). An example of a RFP format is illustrated in FIG. 6 . In the case where the validation is not successful (“No” in step 419), then control passes to step 411. In the case where the validation performed in step 419 is successful (“Yes” in step 419), the RTP network 130 then receives a determination of whether the payor FI 111 associated with the payor station 110 (or the station itself 110) accepts the request for payment message (RFP) (step 420). If not (“No” in step 423), then control passes to step 411 which is performed in the below described manner.

Referring now to step 411, that step includes the RTP network 130 generating an exception message and providing it to the payee FI 121 (in one example embodiment herein, the message is created by the payor FI 111 and sent to the RTP network 130 for being sent to the FI 121). Then, the payee FI 121 receives that message and notifies the payee station 120 of the message (step 414), and then the method ends (step 445).

If step 420 results in a determination of “Yes” (“Yes” in step 423), then control passes to step 424 where the payor FI 111 forwards the request for payment message (RFP) to the payor station 110. In one example embodiment, an “accept” message is sent to the payee FI 121 to indicate that the request for payment message (RFP) was successfully sent to the payor station 110. Next, a decision can be made (for example, by the payor) to accept or reject/ignore the request for payment message (RFP) (step 425). If it is decided to reject/ignore the message (“No” in step 425), the method ends in step 445.

On the other hand, if the RFP message is accepted (“Yes” in step 425), then the payor associated with station 110 may, in one example embodiment, request that a detailed bill be provided, such as to the payor FI 111 (step 427). For example, in one embodiment where the RFP message includes a bill summary having a link for accessing a detailed bill, the link can be selected to request the detailed bill. Also in one example embodiment herein, the payor can view the bill summary and select the detailed bill via an online banking interface provided by payor FI 111, although in other examples these procedures can be performed without using the online interface. Additionally, in one example embodiment herein, the selection to view the detailed bill can implement a SSO procedure, as described above, to communicate with a source of the bill and obtain the bill.

In response to receiving a request to view a detailed bill, the payor FI 111 responds to the request for a detailed bill by sending a request for endpoint data relating to the payee associated with station 120, towards the federated directory 200 (either directly or by way of RTP network 130) (step 428), where the request is then employed to obtain BANPC and BRNPC identifiers (based on information included in the request), in the above-described manner (step 208). For example, as described above, the federated directory 200 determines whether the requested endpoint data is included in the database 210 and/or the other directories 201 to 200 . . . N, determines which database 210 or directory 201 to 200 . . . N to retrieve the endpoint data from (e.g., either on its own or by presenting options to the requesting party and obtaining a responsive selection), and obtains corresponding BANPC and BRNPC identifiers, in the above-described manner.

The obtained BANPC and BRNPC identifiers are then provided by the directory 200 (either directly or by way of RTP network 130) to the payor FI 111 (step 429). The payor FI 111 then generates a bill request message that includes the BANPC and BRNPC identifiers relating to the payee and provides the bill request message to the RTP Network 130 (step 430). Next, the bill request message is detokenized by the RTP network 130 using the detokenization procedure described above (step 209), such that the BANPC and BRNPC identifiers in the bill request message are correlated to and replaced in the message with a corresponding account number and routing number associated with the payee associated with station 120 (step 432). In one example embodiment herein, the detokenization procedure can be performed in accordance with the flow diagram represented in FIG. 2B. The RTP network 130 then routes the bill request message to the payee FI 121 based on at least the routing number, in one example embodiment herein (step 434).

In one example embodiment herein, the payee FI 121 then forwards the bill request message to the station 120, or to biller interface 144 (by way of element 142 or directly) (step 436), where a detailed bill is requested (step 438).

Next, in step 440 a detailed bill is obtained from the station 120 or biller interface 144, wherein the detailed bill includes information such as, for example, an amount owed by the payor associated with station 110 to the payee associated with station 120, a due date, services or goods sold, and other bill details or the like, although this example is not limiting or exhaustive. In the case where the biller interface 144 obtains the requested bill, the biller interface 144 obtains the bill either by generating it on its own, or by communicating with a bill store, such as one maintained by the payee or payee station 120, to obtain the bill or information for generating the bill. In an example embodiment where the biller interface 144 is employed to obtain the bill, the bill request message need not first be provided to the payee FI 121, and instead may be provided to the biller interface 144, which then can obtain the requested bill in the above manner. In still a further example embodiment herein, the detailed bill is obtained by the payee FI 121 in response to receiving the bill request message, wherein the FI 121 obtains the bill either by generating it on its own, or by communicating with the bill store or the billing interface 144 to obtain the bill or information for generating the bill.

Next, in step 442 a message including the obtained detailed bill is forwarded through the system 100 towards the requesting entity, by way of the RTP network 130 or the federated directory 200 by way of the RTP network 130. In one example embodiment herein, in addition to the detailed bill, the message also includes BANPC and BRNPC identifiers associated with the payor. Those identifiers may have been obtained previously, such by the FI 121, during the RFP message procedure described above, and can be used again in the message forwarded in step 442. In another example embodiment herein, the BANPC and BRNPC identifiers can be newly obtained again, for use in the message forwarded in step 442, by using the same procedure as that described above to obtain them in the RFP message procedure, in response to the FI 121 requesting the directory 200 (directly or by way of network 130) to provide endpoint data relating to the payor associated with station 110.

Next, a detokenization procedure is performed as described above by the RTP network and/or directory 200 (step 209), to obtain an account number and routing number associated with the payor associated with station 110, based on the BANPC and BRNPC identifiers included in the message, and the identifiers are replaced in the message with those numbers. In one example embodiment herein, the detokenization procedure can be performed in accordance with the flow diagram represented in FIG. 2B. A message including those numbers and the detailed bill is then routed to the payor FI 111 based on at least the routing number (step 444). The payor FI 111 can then forward the detailed bill to the payor station 110, where it can be accessed and viewed by the payor (step 446).

Upon receiving the detailed bill, the payor associated with payor station 110 may decide to make a payment for settling the detailed bill (step 448). If so, the payor station 110 can provide a message to the payor FI 111 requesting that a payment be made (step 450). The payor FI 111 then adds to a payment transaction message an indication that the payment transaction message is in response to a particular request for payment message (RFP) (step 452) (e.g., the indication is added to the UT-ID). Afterwards, the method ends (step 454) and a real-time payment process described below (FIG. 5 ) can begin for making a real-time payment.

3. Real-Time Payment Procedure

A real-time payment procedure according to an example embodiment herein will now be described. Referring now to FIG. 5 , in addition to being able to obtain access to and view, summary and detailed bills, a payor (e.g., associated with station 110) can connect to a payor FI 111 (e.g., via an on-line banking website or mobile application) to authorize a payment of an amount from the payor's account with payor FI 111 to a payee associated with station 120 and FI 121 (step 501). It is noted that payment can be made in response to a request for payment message (RFP), although it need not be.

After receiving payment authorization (e.g., a payment authorization message) from the payor (step 502), such as, for example, via a channel specific message, the FI 111 checks the account associated with the payor to determine whether the account has a sufficient amount of funds available to cover the payment amount (step 503), in one example embodiment herein.

Where sufficient funds are determined to be available, the payor FI 111 then determines whether the requested payment can be processed in real time (step 504). In one embodiment, step 504 is performed by the FI 111 determining at least one of (i) whether the payee FI 121 identified in the payment authorization has a capability to receive real time payments (i.e., is “real time enabled”), (ii) determining whether the payment amount is less than a predetermined individual transaction limit of the transaction system 100, and (iii) determining whether the payment amount is less than a predetermined client specific transaction value set by the FI 111 or 121. For example, determination (i) can involve the FI 111 associating an identifier of the payee FI 121 included in the payment authorization with associated predetermined information stored in the payor FI 111 indicating whether or not the payee FI 121 supports real time payment capability. In another example embodiment, the RTP network 130 stores the predetermined information, and the determination is made by the payor FI 111 communicating with the RTP network 130 to determine whether the predetermined information indicates that the payee FI 121 supports real time payment capability. In still another example embodiment, the predetermined information is stored elsewhere, in another element, of the transaction system 100, such as in the payee FI 121, and the determination is made by the payor FI 111 communicating with that element to determine whether the predetermined information indicates that the payee FI 121 supports real time payment capability. The determinations (ii) and (iii) can involve similar procedures for determining whether the payment amount is less than a predetermined transaction limit, i.e., the amount included in the payment authorization is checked against a limit that may be included in the FI 111 or 121, the RTP network 130, or in another element of the transaction system 100.

If any of the determinations (i), (ii), and (iii) results in a “No” (“No” in step 505), control passes to step 507 where the user of station 110 may elect to make the payment via another payment alternative, or the payor FI may not offer another payment alternative, or the user does not select another payment alternative. After step 507, the method ends (step 555).

If each of the determinations (i), (ii), and (iii) results in a “Yes” (“Yes” in step 505), the payor FI 111 sends a request for endpoint data relating to the payee towards the federated directory 200 (either directly or by way of the RTP network 130) (step 506), where the request is then employed to obtain BANPC and BRNPC identifiers associated with the payee (based on information included in the request), in the above-described manner (step 208). For example, as described above, the federated directory 200 determines whether the requested endpoint data is included in the database 210 and/or the other directories 201 to 200 . . . N, determines which database 210 or directory 201 to 200 . . . N to retrieve the endpoint data from (e.g., either on its own or by presenting options to the requesting party and obtaining a responsive selection), and obtains corresponding BANPC and BRNPC identifiers, in the above-described manner.

The obtained BANPC and BRNPC identifiers are then provided to the payor FI 111 so that the payor FI 111 can then include the BANPC and BRNPC identifiers in a payment transaction message that the FI 111 generates and provides to the RTP network 130 (step 508). The payment transaction message may include, in addition to the BANPC and BRNPC identifiers, a transaction identifier (e.g., a UT-ID generated by an algorithm), a payee's name (and/or other applicable information), the payor's name, the payment amount, and a payee remittance identifier (i.e., payor's account number with the payee) so that the payee can associate the payment with the payor, and/or additional information for posting purposes, although not all of that info necessarily need be included.

The RTP network 130 then receives the payment transaction message from the payor FI 111 and determines whether the message is correctly formatted (step 510). For example, the RTP network 130 can check the message type of the transaction, and validate the format, syntax, and/or structure of the message. This step can be performed in accordance with any suitable techniques. If it is determined that the message is not properly formatted (“No” in step 511), control passes to step 566 described below.

If it is determined that the message is properly formatted (“Yes” in step 511), then control passes to step 512 where the RTP network 130 checks to determine whether the message is duplicative of one already received, based on, for example, whether a UT-ID included in the message was already received. If it is determined that the message is duplicative (“Yes” in step 513), then control passes to step 566, which will be described below. If, on the other hand, the message is determined to not be duplicative (“No” in step 513), then control passes to step 514 where the RTP network 130 checks the message to determine whether it includes valid BANPC and BRNPC identifiers. If not (“No” in step 515), then control passes to step 566 which is performed in a manner to be described below. If “Yes” in step 515, then in step 516 the RTP network 130 makes a determination as to whether the payor FI 111 is enabled for sending payment transactions, and whether the payee FI 121 is enabled to receive payment transactions. For example, this step can include the RTP network 130 checking a look-up table to determine whether information in the table indicates that those FIs have such respective capabilities. If the FIs are determined not to be enabled (No” in step 517), then control passes to step 566 which will be described below. If, on the other hand, the FIs are determined to be enabled (“Yes” in step 517), then the RTP network 130 makes a determination as to whether the payor FI 111 or payee FI 121 have been suspended to participate in electronic payment transactions (step 518). If either of those FIs are determined to be suspended (and thus the check is determined not to be successful (“No” in step 519)), then control passes to step 566. If, on the other hand, neither of the FIs 111, 121 are determined to be suspended (and thus the check is determined to be successful (“Yes” in step 519)), then control passes to step 521 where the RTP network 130 performs various business validations. As an example, the validations can include determining whether the payment amount of the payment transaction is less than a predetermined individual transaction limit of the transaction system 100. In one example embodiment herein, step 521 can include one or more of the determinations (i), (ii), and (iii) described above. If the validation(s) performed in step 521 are determined not to be successful (“No” in step 522), then control passes to step 566.

In step 566, the RTP network 130 generates an exception message and forwards it to the payor FI 111. Then, in step 520 the payor FI 111 responds by processing the exception, where after the method then ends in step 555.

If the validation(s) performed in step 521 are determined to be successful (“Yes” in step 522), then control passes to step 523 where, in one example, the RTP network 130 updates at least one settlement position. In one example embodiment herein, the RTP network 130 updates a multilateral net settlement position for at least one of the payor FI 111 and the payee FI 121. In another example embodiment herein, the RTP network 130 updates the payor FI 111's position (i.e. by deducting the amount of credit transfer from the payor FI's available balance/position).

The payment transaction message is then detokenized using the detokenization procedure (209) described above, to obtain an account number and routing number, based on the BANPC and BRNPC identifiers included in the message, and the identifiers are replaced in the message with those numbers (step 524). In one example embodiment herein, this procedure can be performed in accordance with the flow diagram represented in FIG. 2B.

The payment transaction including those numbers is then routed to the payee FI 121 based on at least the routing number (step 526). Afterwards, the payee FI 121 begins processing the payment transaction (step 527) and determines whether to accept or reject the payment (step 543).

In the case where the payment is rejected (e.g., perhaps a relevant account is closed, a token is not recognized, etc.), the FI 121 assigns a reason for rejecting the payment (step 544) and then sends a status “RJCT” message to the RTP network 130 in step 545. Control then passes to step 530 which performs a tokenizing procedure (although in other embodiments it is not performed), and then control passes to step 531′ which will be described below.

In the case where the FI 121 determines that the payment is pending in step 543 (e.g., perhaps owing to an anti-fraud, AML, or OFAC investigation, etc.), the FI 121 sends a status “PDNG” message to the RTP network 130 (step 546). The pending status message may also be, in one embodiment, an accepted without posting message. Control then passes to step 530 which performs a tokenizing procedure (although in other embodiments it is not performed), and control then passes to step 536 which will be described below. In the case where the FI 121 determines that the payment is accepted in step 543, then in step 547 the FI 121 sends a status “ACK” message to the RTP network 130. Control then passes to step 530 which performs a tokenizing procedure (although in other embodiments it is not performed), and control then passes to step 540. In one example embodiment, the FI 121 can notify the station 120 of the status of the payment (e.g., via text message, email, an online message or other form of communication).

In step 531′ the RTP network 130 validates the payment transaction message with reason for rejection to determine that it is in a correct format. Then, in step 532, the RTP network 130 conducts a reversal of the update to the multilateral net settlement position of the payor FI 111 and/or payee FI 121 (i.e., a reversal of step 523), and then in step 533 the RTP network 130 updates the status of the payment transaction to indicate that the payment has been rejected. However, in another example embodiment herein, in response to receiving a rejection message from step 530, the position of the payee FI 121 is not altered, and the position of the payor FI 111 is reversed/credited by the applicable rejected payment amount, and there is no multilateral netting. In step 534, the RTP network 130 sends a payment reject message to the payor FI 111, indicating that the payment was rejected (which may include the reason for the rejection), and control then passes to step 535 where the FI 111 sends a message (e.g., a text message, email, online message or other form of communication) to the user station 110 indicating that the payment was rejected. Then, the method then terminates (step 555).

In step 536, the RTP network 130 validates the message from step 546 to determine that it is in a correct format. Then, in step 538, the RTP network 130 updates the status of the payment transaction as successful (in the case of step 547) or pending (in the case of step 546). In step 539 the RTP network 130 sends a payment status message to the payor FI 111, indicating that the payment was successful or pending, and control then passes to step 535 where the FI 111 sends a message (e.g., a text message, email, online message or other form of communication) to the user station 110 indicating that the payment was successful or pending. Then the method ends at step 555.

In step 540 the RTP network 130 determines whether a payment acknowledgement (e.g., an ACK message) received by the RTP network 130 from the payee FI 121 is correctly formatted. For example, the RTP network 130 checks the message type of the transaction, and validates the format, syntax, and/or structure of the ACK message. That step can be performed in accordance with any suitable techniques. Then, in step 541 the RTP network 130 forwards the ACK message to the payor FI 111, which then responds in step 535 by providing a message to the station 110 indicating that the payee FI 121 has acknowledged receipt of the payment. The method then ends in step 555. According to one example embodiment herein, payment acknowledgement is a separate transaction from a payment and response, and includes an end user (e.g., 110 or 120) acknowledgement that the payment was received and/or applied.

Additional Features and Considerations

The transaction system 100 and methods described herein are adaptable to meet the changing needs associated with market expectations and risk environments that are prone to change over time. The system 100 supports robust, flexible data models and message types and has an architecture that supports modular service integration. In one example embodiment herein, the system has global compatibility, and, consistent with domestic U.S. requirements, the system adheres to widely used global standards (e.g., ISO 20022) and the processes/conventions used by real-time payment systems in other countries to facility future interoperability, and to ease the implementation burden for multi-national banks and companies.

As described above, the transaction system 100 herein, in one example embodiment, employs “Credit Push” payments where customers can send payments directly from their existing accounts, providing greater customer engagement and transparency than alternative payment services. The transaction system 100 also, in one example, employs standard but extensible message formats, and supports independent product development by financial institutions through powerful, flexible standards while ensuring that the overall end-to-end process is consistent and reliable. Real-time messaging also is provided with “bank-grade” security, in that is provided financial institutions with tools to create a superior customer experience in applications such as mobile banking, P2P transfers, bill payments, just-in-time B2B transactions, etc. The transaction system 100 also uses integrated tokenization and directory services to eliminate need for customers to share sensitive account information or know routing details of recipients. The transaction system 100 thus is fundamentally safer, more-convenient, and more-capable than existing payment systems.

It should be noted that, although described herein in the context of translating bank account and bank routing numbers to BANPC and BRNPC numbers, respectively, and translating vice versa, the scope of the invention is not limited thereto. For example, in other embodiments no such translations need be employed, and the federated directory 200 can be communicated with to obtain (from one or more of directory 200 and directories 201 to 200 . . . N) requested endpoint data that is used to forward a message (e.g., a request for payment, a payment transaction, or other message) to a party or entity associated with the endpoint data. Also, the scope of the invention is not limited for use with only request for payment and payment messages, and the functionalities described herein also can be used in conjunction with any other types of messages as well.

In the foregoing description, example aspects are described with reference to several example embodiments. Accordingly, the specification should be regarded as illustrative, rather than restrictive. Similarly, the figures illustrated in the drawings highlight the functionality and advantages of the example embodiments, and are presented for example purposes only. The architecture of the example embodiments is sufficiently flexible and configurable, such that it may be utilized (and navigated) in ways other than those shown in the accompanying figures.

Software embodiments may be provided as a sequence of instructions, or software, which may be stored on an article of manufacture, e.g., a computer-readable medium having instructions. The instructions on the computer-readable medium may be used to program a computer system or other electronic device. The computer-readable medium may include, but is not limited to, floppy diskettes, optical disks, CD-ROMs, and magneto-optical disks or other types of media suitable for storing electronic instructions, and does not include non-transitory media such as signals and the like. The techniques described herein, when performed using a computer system, are not limited to any particular software configuration. They may find applicability in any computing or processing environment. The terms “computer-readable medium” and “memory” refer to any medium that is capable of storing, encoding, or transmitting a sequence of instructions for execution by a computer system and that causes the computer system to perform any technique described herein, and does not include non-transitory media such as signals and the like.

Furthermore, it is common in the art to speak of software, in one form or another (e.g., program, procedure, process, application, logic, and so on) as taking an action or causing a result. Such expressions are merely a shorthand way of stating that the execution of the software by a computer system causes the processor to perform an action to produce a result. In other embodiments, functions performed by software can instead be performed by hardcoded modules, and thus the example embodiments herein are not limited only for use with stored software programs. In addition, it is not necessary that processes described herein be performed with a computer system, and instead they can be performed, in whole or in part, by a human operator. It should be noted that the scope of the invention is not limited for use in a particular environment, rather the invention can be used, for example and without limitation, any suitable type of environment involving bill presentment and payment.

Although example aspects have been described in certain specific embodiments, many additional modifications and variations would be apparent to those skilled in the art. It thus should be understood that the example embodiments may be practiced in ways other than those specifically described. Again, the present example embodiments should be considered in all respects as illustrative and not restrictive.

It is also noted that similar reference numerals shown in the various figures represent the same elements, in one example embodiment herein. However, in another example embodiment herein the elements need not necessarily be the same and each separate figure can represent its own respective embodiment. 

1-48. (canceled)
 49. A method for accessing endpoint data through a federated directory system, comprising: receiving, from a requester, at a federated directory a request for endpoint data containing information associated with a particular party; identifying, by the federated directory, one or more industry directories containing endpoint data to which the federated directory has access, thereby identifying one or more identified industry directories; querying, by the federated directory, the one or more identified industry directories for the requested endpoint data; determining, based on the query, one or more identified industry directories that contain the requested endpoint data, thereby determining one or more determined industry directories; accessing pricing information from the one or more determined industry directories for a charge of providing the requested data from the one or more determined industry directories to the requestor; communicating to the requester, by the federated directory, the one or more determined industry directories containing the requested endpoint data and the pricing information for providing the requested endpoint data to the requester; and upon receiving a decision from the requester to proceed: retrieving the requested endpoint data from the one or more determined industry directories authorized by the requester; storing the retrieved endpoint data at the federated directory for access by the requester; correlating requester information from the requestor and payor information from the one or more determined industry directories; creating a payment transaction charging for access to the requested endpoint data based on the correlating; and communicating the payment transaction to the requester and the payee.
 50. The method of claim 49, further comprising: including one or more pointers in the federated directory pointing to the one or more industry directories to which the federated directory has access; and accessing the one or more industry directories by the federated directory using the one or more pointers, wherein the one or more pointers can point to the pricing information stored in the industry directories.
 51. The method of claim 49, wherein the determining also includes determining any requirements by the one or more industry directories for providing the requested endpoint data.
 52. The method of claim 49, wherein the payment transaction is a request for payment message.
 53. The method of claim 52, wherein the endpoint data includes at least one of a bank account number and a bank routing number.
 54. The method of claim 53, further comprising routing the payment transaction message to a destination based on at least the bank routing number.
 55. The method of claim 49, wherein if more than one industry directory is determined to contain the requested endpoint data, determining from the received decision which of the one or more determined industry directories is to be accessed to retrieve the requested endpoint data.
 56. The method of claim 55, further comprising determining a charge for accessing the requested endpoint data based on the accessed pricing information from the one or more industry directories and based on the industry directories designated in the received decision.
 57. A federated directory system, comprising: a federated directory; an interface in communication with the federated directory and a plurality of industry directories; a memory storing a program; and a computer processor, operating under control of the program, to perform: receiving, from a requester, at the federated directory a request for endpoint data containing information associated with a particular party; identifying, by the federated directory, one or more industry directories containing endpoint data to which the federated directory has access, thereby identifying one or more identified industry directories; querying, by the federated directory, the one or more identified industry directories for the requested endpoint data; determining, based on the query, one or more identified industry directories that contain the requested endpoint data, thereby determining one or more determined industry directories; accessing pricing information from the one or more determined industry directories for a charge of providing the requested data from the one or more determined industry directories to the requester; communicating to the requester, by the federated directory, the one or more determined industry directories containing the requested endpoint data and the pricing information for providing the requested endpoint data to the requester; and upon receiving a decision from the requester to proceed: retrieving the requested endpoint data from the one or more determined industry directories authorized by the requester; storing the retrieved endpoint data at the federated directory for access by the requester; correlating requester information from the requester and payor information from the one or more determined industry directories; creating a payment transaction charging for access to the requested endpoint data based on the correlating; and communicating the payment transaction to the requester and the payee.
 58. The federated directory system of claim 57, wherein the computer processor, operating under control of the program, further performs: including one or more pointers in the federated directory pointing to the one or more industry directories to which the federated directory has access; and accessing the one or more industry directories by the federated directory using the one or more pointers, wherein the one or more pointers can point to the pricing information stored in the industry directories.
 59. The federated directory system of claim 57, wherein the determining also includes determining any requirements by the one or more industry directories for providing the endpoint data.
 60. The federated directory system of claim 57, wherein the payment transaction is a request for payment message.
 61. The federated directory system of claim 57, wherein if more than one industry directory is determined to contain the requested endpoint data, determining from the received decision which of the one or more determined industry directories is to be accessed to retrieve the requested endpoint data.
 62. The federated directory system of claim 61, further comprising determining a charge for accessing the requested endpoint data based on the accessed pricing information from the one or more industry directories and based on the industry directories designated in the received decision.
 63. A computer-readable medium storing a program having instructions which, when executed by a computer processor, cause the computer processor to perform a method for accessing a federated directory in a transaction system, comprising: receiving, from a requester, at a federated directory a request for endpoint data containing information associated with a particular party; identifying, by the federated directory, one or more industry directories containing endpoint data, to which the federated directory has access, thereby identifying one or more identified industry directories; querying, by the federated directory, the one or more identified industry directories for the requested endpoint data; determining, based on the query, one or more identified industry directories that contain the requested endpoint data, thereby determining one or more determined industry directories; accessing pricing information from the one or more determined industry directories for a charge of providing the requested data to the requester from the one or more determined industry directories to the requester; communicating to the requester, by the federated directory, the one or more determined industry directories containing the requested endpoint data and the pricing information for providing the requested endpoint data to the requester; and upon receiving a decision from the requester to proceed: retrieving the requested endpoint data from the one or more determined industry directories authorized by the requester; storing the retrieved endpoint data at the federated directory for access by the requester; correlating requester information from the requester and payor information from the one or more determined industry directories; creating a payment transaction charging for access to the requested endpoint data based on the correlating; and communicating the payment transaction to the requester and the payee.
 64. The method of claim 63, further comprising: including one or more pointers in the federated directory pointing to the one or more industry directories to which the federated directory has access; and accessing the one or more industry directories by the federated directory using the one or more pointers, wherein the one or more pointers can point to the pricing information stored in the industry directories.
 65. The method of claim 63, wherein the endpoint data includes at least one of a bank account number and a bank routing number.
 66. The method of claim 65, further comprising routing the payment transaction message to a destination based on at least the bank routing number.
 67. The method of claim 63, wherein if more than one industry directory is determined to contain the requested endpoint data, determining from the received decision which of the one or more determined industry directories is to be accessed to retrieve the requested endpoint data.
 68. The method of claim 67, further comprising determining a charge for accessing the requested endpoint data based on the accessed pricing information from the one or more industry directories and based on the industry directories designated in the received decision. 